package com.xique.park.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xique.park.bean.domain.ParkStatisticsIncome;
import com.xique.park.bean.vo.web.statistics.ParkStatisticsIncomeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 收入统计报表服务 Mapper 接口
 *
 * @author xique
 */
@Mapper
public interface ParkStatisticsIncomeMapper extends BaseMapper<ParkStatisticsIncome> {

    /**
     * 根据日期分页查询车场收入统计报表
     *
     * @param page      分页参数
     * @param parkId    车场ID
     * @param startTime 开始日期
     * @param endTime   结束日期
     * @return 分页查询结果
     */
    IPage<ParkStatisticsIncomeVo> selectPageByDay(@Param("page") Page<ParkStatisticsIncomeVo> page,
                                                  @Param("parkId") Long parkId,
                                                  @Param("startTime") String startTime,
                                                  @Param("endTime") String endTime);

    /**
     * 根据月份分页查询车场收入统计报表
     *
     * @param page      分页参数
     * @param parkId    车场ID
     * @param startTime 开始日期
     * @param endTime   结束日期
     * @return 分页查询结果
     */
    IPage<ParkStatisticsIncomeVo> selectPageByMonth(@Param("page") Page<ParkStatisticsIncomeVo> page,
                                                    @Param("parkId") Long parkId,
                                                    @Param("startTime") String startTime,
                                                    @Param("endTime") String endTime);

    /**
     * 根据年份分页查询车场收入统计报表
     *
     * @param page      分页参数
     * @param parkId    车场ID
     * @param startTime 开始日期
     * @param endTime   结束日期
     * @return 分页查询结果
     */
    IPage<ParkStatisticsIncomeVo> selectPageByYear(@Param("page") Page<ParkStatisticsIncomeVo> page,
                                                   @Param("parkId") Long parkId,
                                                   @Param("startTime") String startTime,
                                                   @Param("endTime") String endTime);

    /**
     * 按天不分页查询
     * @param parkId
     * @param startTime
     * @param endTime
     * @return
     */
    List<ParkStatisticsIncomeVo>  selectPageByDay(@Param("parkId") long parkId, @Param("startTime") String startTime, @Param("endTime") String endTime);


    /**
     *  按月不分页
     * @param parkId
     * @param startTime
     * @param endTime
     * @return
     */
    List<ParkStatisticsIncomeVo> selectPageByMonth(@Param("parkId") long parkId, @Param("startTime") String startTime, @Param("endTime") String endTime);


    /**
     *按年不分页
     * @param parkId
     * @param startTime
     * @param endTime
     * @return
     */
    List<ParkStatisticsIncomeVo> selectPageByYear(@Param("parkId") long parkId, @Param("startTime") String startTime, @Param("endTime") String endTime);



}
